/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Persistencia;

import MailCliente.MailCliente;
import Message.Mensaje;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author AdrianaQuispe
 *
 * @version 1.1.1 15 de Diciembre de 2013
 */
public class EscribirArchivo {

    private File archivo;
    private FileWriter escribir;

    public EscribirArchivo() {
        archivo = null;
        escribir = null;

    }

    public boolean existe(String dataTxt, String data) {
        //Creamos un String que va a contener todo el texto del archivo
        String texto = "";
        boolean fv = false;

        try {
//Creamos un archivo FileReader que obtiene lo que tenga el archivo
            FileReader lector = new FileReader(dataTxt);

//El contenido de lector se guarda en un BufferedReader
            BufferedReader contenido = new BufferedReader(lector);

//Con el siguiente ciclo extraemos todo el contenido del objeto "contenido" y lo mostramos
            while (!fv && (texto = contenido.readLine()) != null) {

                fv = (texto.equals(data));
            }
        } //Si se causa un error al leer cae aqui
        catch (Exception e) {
            System.out.println("Error al leer");
        }
        return (fv);


    }

    public void EscribirTxt(String T, String data) {
        try {
            File archivo = new File(T);
            escribir = new FileWriter(archivo, true);

            escribir.write(data);
            escribir.close();
        } catch (IOException ex) {
            Logger.getLogger(MailCliente.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                escribir.close();
            } catch (IOException ex) {
                Logger.getLogger(MailCliente.class.getName()).log(Level.SEVERE, null, ex);
            }
        }



    }

    public void EscribirMailServer(String name) {
        if (!existe("Server.txt", name)) {
            File dir = new File(name);
            dir.mkdir();
            EscribirTxt("Server.txt", name);

        }

    }

    public boolean iniciarSesion(String nameServer, String nameUser) {

        return (!existe(nameServer, nameUser));
    }

    public void guardarClienteElse(String ServerData, String mensaje) {
        try {

            File archivo = new File(ServerData);
            escribir = new FileWriter(archivo, true);

            escribir.write(mensaje);
            escribir.close();
        } catch (IOException ex) {
            Logger.getLogger(MailCliente.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            try {
                escribir.close();
            } catch (IOException ex) {
                Logger.getLogger(MailCliente.class.getName()).log(Level.SEVERE, null, ex);
            }
        }


    }

    public void guardarClientes(String nameServer, Mensaje mensaje) {

        String Destino = mensaje.NombreDestino();

        if (existe(nameServer, Destino)) {
            guardarClienteElse(Destino + ".txt", mensaje.toString());
            return;
        }
        guardarClienteElse("ServerData.txt", mensaje.toString());

    }

//    
//    public void guardarServidor(String nameServer) {
//        File dir = new File("Servidor/" + nameServer);
//        dir.mkdir();
//
//    }
//    public void EscribirMensajes(Mensaje mensaje, String nameserver) {
//    }
    public Mensaje recuperarMensaje(String nameUser) {

        //Creamos un String que va a contener todo el texto del archivo
        String texto = "";

        try {
//Creamos un archivo FileReader que obtiene lo que tenga el archivo
            FileReader lector = new FileReader("ServerData.txt");

//El contenido de lector se guarda en un BufferedReader
            BufferedReader contenido = new BufferedReader(lector);

//Con el siguiente ciclo extraemos todo el contenido del objeto "contenido" y lo mostramos
            while ((texto = contenido.readLine()) != null) {


                System.out.println(texto);
            }
        } //Si se causa un error al leer cae aqui
        catch (Exception e) {
            System.out.println("Error al leer");
        }
        return null;
    }

    public static void main(String[] args) throws IOException, ClassNotFoundException {
//        FileWriter escribir = null;
//        try {
//            File dir = new File("Test/adriana.txt");
//            escribir = new FileWriter(dir, true);
//            escribir.write("Mensajes de ");
//            escribir.close();
//        
//
//} catch (IOException ex) {
//            Logger.getLogger(EscribirArchivo.class  
//
//.getName()).log(Level.SEVERE, null, ex);
//        } finally {
//            try {
//                escribir.close();
//            
//
//} catch (IOException ex) {
//                Logger.getLogger(EscribirArchivo.class  
//
//.getName()).log(Level.SEVERE, null, ex);
//            }
//        }
       



    }
}
